{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'y')"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline \n",
    "import matplotlib.pyplot as plt ###variousgauss###\n",
    "import numpy as np                  \n",
    "from scipy.stats import multivariate_normal \n",
    "import math\n",
    "\n",
    "x, y = np.mgrid[0:200, 0:100]\n",
    "pos = np.empty(x.shape + (2,))\n",
    "pos[:, :, 0] = x \n",
    "pos[:, :, 1] = y\n",
    "\n",
    "a = multivariate_normal(mean=[50,50], cov=[[50, 0], [0, 100]])\n",
    "b = multivariate_normal(mean=[100,50], cov=[[125, 0], [0, 25]])\n",
    "c = multivariate_normal(mean=[150,50], cov=[[100, -25*math.sqrt(3)], [-25*math.sqrt(3), 50]])\n",
    "\n",
    "for e in [a,b,c]:\n",
    "    plt.contour(x, y, e.pdf(pos)) \n",
    "\n",
    "plt.gca().set_aspect('equal') #gca: 図を管理しているAxisというオブジェクトを返す\n",
    "plt.gca().set_xlabel('x')\n",
    "plt.gca().set_ylabel('y')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "eig_vals:  [125.  25.]\n",
      "eig_vec:  [[ 0.8660254  0.5      ]\n",
      " [-0.5        0.8660254]]\n",
      "固有ベクトル1:  [ 0.8660254 -0.5      ]\n",
      "固有ベクトル2:  [0.5       0.8660254]\n"
     ]
    }
   ],
   "source": [
    "eig_vals, eig_vec = np.linalg.eig(c.cov) ###eigen###\n",
    "\n",
    "print(\"eig_vals: \", eig_vals)\n",
    "print(\"eig_vec: \", eig_vec)\n",
    "print(\"固有ベクトル1: \", eig_vec[:,0])   #eig_vecの縦の列が固有ベクトルに対応\n",
    "print(\"固有ベクトル2: \", eig_vec[:,1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.contour(x, y, c.pdf(pos))     ###draweigen###\n",
    "\n",
    "v = 2*math.sqrt(eig_vals[0])*eig_vec[:,0]\n",
    "plt.quiver(c.mean[0], c.mean[1], v[0], v[1], color=\"red\", angles='xy', scale_units='xy', scale=1)\n",
    "\n",
    "v = 2*math.sqrt(eig_vals[1])*eig_vec[:,1]\n",
    "plt.quiver(c.mean[0], c.mean[1], v[0], v[1], color=\"blue\", angles='xy', scale_units='xy', scale=1)\n",
    "\n",
    "plt.gca().set_aspect('equal')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "分解したものを計算:\n",
      " [[100.         -43.30127019]\n",
      " [-43.30127019  50.        ]]\n",
      "元の共分散行列:\n",
      " [[100.         -43.30127019]\n",
      " [-43.30127019  50.        ]]\n"
     ]
    }
   ],
   "source": [
    "V = eig_vec   #eig_vecには固有ベクトルが並んでいるのでそのまま使える  ###eigenmatrix###\n",
    "L = np.diag(eig_vals)  #np.diagで対角行列を作成\n",
    "\n",
    "print(\"分解したものを計算:\\n\", V.dot(L.dot(np.linalg.inv(V))))\n",
    "print(\"元の共分散行列:\\n\", np.array([[100, -25*math.sqrt(3)], [-25*math.sqrt(3), 50]]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
